package array;

public class 按规则计算统计结果 {
    //三角法
    class Solution {
        public int[] statisticalResult(int[] arrayA) {
            int len = arrayA.length;
            if(len == 0)
                return new int[0];
            int[] b = new int[len];
            b[0] = 1;
            for(int i=1; i<len; i++){
                b[i] = b[i-1] * arrayA[i-1];
            }
            int tmp = 1;
            for (int i=len-2; i>=0; i--){
                tmp *= arrayA[i+1];
                b[i] *=tmp;
            }
            return  b;
        }
    }
    //暴力-超时
    class Solution2 {
        public int[] statisticalResult(int[] arrayA) {
            int len = arrayA.length;
            int[] b = new int[len];
            for(int i = 0; i < len; i++) {
                b[i] = 1;
                for(int j = 0; j < len; j++) {
                    if(i != j) {
                        b[i] *= arrayA[j]; // 直接使用arrayA进行乘积计算，避免了c数组不必要的赋值操作
                    }
                }
            }
            return b;
        }
    }
}
